import { Injectable, PipeTransform } from '@nestjs/common'

@Injectable()
export class QueryEmptyTrimPipe implements PipeTransform {
  transform(value: any) {
    return filterEmptyStrings(value)
  }
}
/**
 * 过滤对象中的空字符串值
 *
 * @param {Object} obj - 要过滤的对象
 * @returns {Object} 返回一个新对象，只包含非空字符串值的键值对
 *
 * @example
 * const input = { a: 'hello', b: '', c: 'world', d: '' };
 * const result = filterEmptyStrings(input);
 * // 结果: { a: 'hello', c: 'world' }
 */
const filterEmptyStrings = (obj) => {
  return Object.keys(obj)
    .filter((key) => obj[key] !== '') // 过滤掉所有值为空字符串的键
    .reduce((result, key) => {
      result[key] = obj[key] // 创建一个新对象，只包含非空字符串的键值对
      return result
    }, {})
}
